package Leetcode.lc189;

/***
 * 给定一个整数数组 nums，将数组中的元素向右轮转 k 个位置，其中 k 是非负数。
 */
public class Sloution {

    /***
     * 右旋的思路，数组化处理，整体反转，然后部分反转，部分反转的K坐标为k%=n
     * @param nums
     * @param k
     */
    public void rotate(int[] nums, int k) {
        int n=nums.length;
        k%=n;
        //整体反转
        reverse(nums,0,n-1);
        reverse(nums,0,k-1);
        reverse(nums,k,n-1);

    }
    public void reverse(int[] nums,int left,int right){
        while (left<right){
            int temp=nums[left];
            nums[left++]=nums[right];
            nums[right--]=temp;
        }
    }

    public static void main(String[] args) {

    }
}
